home *** CD-ROM | disk | FTP | other *** search
- unit Child;
- {$A+}
-
- interface
-
- uses
- Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
- Dialogs, Grids, DBGrids, Db, DBTables, dclDQuery;
-
- type
- TFormChild = class(TForm)
- DataSource: TDataSource;
- DBGrid1: TDBGrid;
- SaveDlg: TSaveDialog;
- Query: TDuckQuery;
- procedure FormCreate(Sender: TObject);
- procedure FormDestroy(Sender: TObject);
- procedure FormClose(Sender: TObject; var Action: TCloseAction);
- procedure FormShow(Sender: TObject);
- procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
- procedure FormActivate(Sender: TObject);
- procedure QueryAfterScroll(DataSet: TDataSet);
- private
- FileName: TFileName;
- DuckQuery: TDuckQuery;
- Procedure OpenQuery;
- public
- bSave: Boolean;
- Constructor Create (AOwner: TComponent; ADuckQuery: TDuckQuery);
- Procedure ReOpen (ADuckQuery: TDuckQuery);
- Function SaveFile (bShowDlg: Boolean): Boolean;
- Function OpenFile (St: TFileName): Boolean;
- end;
-
- var
- FormChild: TFormChild;
-
- implementation
-
- uses Main;
-
- {$R *.DFM}
- Constructor TFormChild.Create (AOwner: TComponent; ADuckQuery: TDuckQuery);
- Begin
- FileName := '';
- bSave := FALSE;
- DuckQuery := ADuckQuery;
- inherited Create (AOwner);
- End;
- Procedure TFormChild.FormCreate(Sender: TObject);
- Begin
- { DRQueryInfo := TDRQueryInfo.Create;}
- if DuckQuery <> nil Then
- ReOpen (DuckQuery);
- End;
- Procedure TFormChild.FormDestroy(Sender: TObject);
- Begin
- if FormMain.MDIChildCount = 1 Then
- FormMain.EnabledCtrl (FALSE);
- End;
- Procedure TFormChild.FormClose(Sender: TObject; var Action: TCloseAction);
- Begin
- Action := caFree;
- End;
- Procedure TFormChild.FormShow(Sender: TObject);
- Var
- iHeight: Integer;
- iWidth: Integer;
- Begin
- iHeight := FormMain.ClientHeight;
- iWidth := FormMain.ClientWidth;
- {$IFDEF WIN32}
- iHeight := iHeight - GetSystemMetrics (SM_CYDLGFRAME) - 1;
- iWidth := iWidth - GetSystemMetrics (SM_CXDLGFRAME) - 1;
- {$ELSE}
- {$ENDIF}
-
-
- With FormMain Do
- Begin
- if PStatusBar.Visible Then
- iHeight := iHeight - PStatusBar.Height;
- if PToolBar.Visible Then
- iHeight := iHeight - PToolBar.Height;
- End;
- SetBounds (0, 0, iWidth, iHeight);
- FormMain.EnabledCtrl (TRUE);
- { OpenQuery;}
- End;
- Procedure TFormChild.OpenQuery;
- Var
- Cursor: TCursor;
- Begin
- Cursor := Screen.Cursor;
- Screen.Cursor := crHourGlass;
- Try
- if Query.Active Then
- Query.Active := FALSE;
- Query.Active := TRUE;
- Finally
- Screen.Cursor := Cursor;
- End;
- End;
- Procedure TFormChild.ReOpen (ADuckQuery: TDuckQuery);
- Begin
- Query.Assign (ADuckQuery);
- Query.DoSQL;
- OpenQuery;
- End;
- Procedure TFormChild.FormCloseQuery(Sender: TObject;
- var CanClose: Boolean);
- Var
- St: String;
- Begin
- if not bSave Then
- Begin
- St := FileName;
- if St = '' Then
- St := Caption;
- St := St + ' has changed' + Char(#13) + Char(#10) +
- 'Do you want to save the changes';
-
- if MessageDlg (St, mtWarning, [mbYes, mbNo], 0) = mrYes Then
- Begin
- SaveFile (FALSE);
- CanClose := bSave;
- End
- Else
- CanClose := TRUE;
- End;
- End;
- Function TFormChild.SaveFile (bShowDlg: Boolean): Boolean;
- Begin
- Result := FALSE;
- if (bShowDlg = TRUE) or (FileName = '') Then
- Begin
- SaveDlg.FileName := FileName;
- if not SaveDlg.Execute Then Exit;
- FileName := SaveDlg.FileName;
- End;
- if FileName = '' Then Exit;
- if not Query.SaveFile (FileName) Then Exit;
- bSave := TRUE;
- Result := TRUE;
- Caption := FileName;
- End;
- Function TFormChild.OpenFile (St: TFileName): Boolean;
- Begin
- Result := FALSE;
- if not Query.OpenFile (St) Then Exit;
- Query.DoSQL;
- Query.Active := TRUE;
- FileName := St;
- bSave := TRUE;
- Result := TRUE;
- Caption := FileName;
- OpenQuery;
- End;
- Procedure TFormChild.FormActivate(Sender: TObject);
- Begin
- QueryAfterScroll (nil);
- End;
- Procedure TFormChild.QueryAfterScroll(DataSet: TDataSet);
- Begin
- With FormMain Do
- Begin
- SBFirst.Enabled := not Query.BOF;
- SBPrevious.Enabled := not Query.BOF;
-
- SBNext.Enabled := not Query.EOF;
- SBLast.Enabled := not Query.EOF;
-
- MenuFirst.Enabled := SBFirst.Enabled;
- MenuPrevious.Enabled := SBPrevious.Enabled;
- MenuNext.Enabled := SBNext.Enabled;
- MenuLast.Enabled := SBLast.Enabled;
- End;
- End;
-
- End.
-